package com.lulin.mall.order.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lulin.common.utils.PageUtils;
import com.lulin.mall.order.entity.OrderEntity;
import com.lulin.mall.order.vo.OrderConfirmVo;
import com.lulin.mall.order.vo.OrderResponseVo;
import com.lulin.mall.order.vo.OrderSubmitVo;
import com.lulin.mall.order.vo.PayVo;

import java.util.Map;

/**
 * 订单
 *
 * @author lulin
 * @email 2032327049@qq.com
 * @date 2022-09-21 17:08:00
 */
public interface OrderService extends IService<OrderEntity> {

    PageUtils queryPage(Map<String, Object> params);

    /**
     * 获取订单结算确认页需要的相关信息
     */
    OrderConfirmVo confirmOrder();
    /**
     * 结算确认页——提交订单
     */
    OrderResponseVo orderSubmit(OrderSubmitVo vo);

    /**
     * 根据订单编号，查询出相关的订单信息，封装到PayVo中
     * @param orderSn 订单编号
     */
    PayVo getOrderPay(String orderSn);

    /**
     * 支付完成后，后面处理的操作，例如：更新订单状态、更新库存信息、购物车中移除已经支付的商品....等
     * @param orderSn 订单编号
     */
    void handleOrderComplete(String orderSn);
}

